//----------------------------------------------------------------------------------------------
//	Filename:	SegmentsGraph.h
//	Author:		Sandro Spina
//	Date:		27/01/2013
//----------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------

#include "ObjStructureGraph.h"

ObjStructureGraph::ObjStructureGraph()
{
	DisjointStructureGraphs = new Illumina::Core::List<Node*>();
	//ConsumedStates = new std::stack<std::vector<int>*>();
	DirectionsTravelledFromTrainingSet = new std::map<std::string, int>();
	nodeID = new ::UniqueID();
	nodes = new std::map<int, Node*>();
}

void ObjStructureGraph::SetInitialNodeId(int pId) 
{
	initial_node_id = pId;
}

int ObjStructureGraph::GetInitialNodeId()
{
	return initial_node_id;
}

//Create and populate a new node to represent a surface segment. Add to nodes map.
void ObjStructureGraph::AddNode(ObjStructureGraph::Node * &p_node)
{
	(*nodes)[p_node->id] = p_node;
}	

std::map<int, ObjStructureGraph::Node*> * ObjStructureGraph::GetNodes()
{
	return nodes;
}